home *** CD-ROM | disk | FTP | other *** search
-
-
-
- BBBB::::::::CCCC((((3333)))) 22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) BBBB::::::::CCCC((((3333))))
-
-
-
- NNNNAAAAMMMMEEEE
- B::C - Perl compiler's C backend
-
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- perl -MO=C[,OPTIONS] foo.pl
-
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- This compiler backend takes Perl source and generates C
- source code corresponding to the internal structures that
- perl uses to run your program. When the generated C source
- is compiled and run, it cuts out the time which perl would
- have taken to load and parse your program into its internal
- semi-compiled form. That means that compiling with this
- backend will not help improve the runtime execution speed of
- your program but may improve the start-up time. Depending
- on the environment in which your program runs this may be
- either a help or a hindrance.
-
- OOOOPPPPTTTTIIIIOOOONNNNSSSS
- If there are any non-option arguments, they are taken to be
- names of objects to be saved (probably doesn't work properly
- yet). Without extra arguments, it saves the main program.
-
- ----ooooffffiiiilllleeeennnnaaaammmmeeee
- Output to filename instead of STDOUT
-
- ----vvvv Verbose compilation (currently gives a few compilation
- statistics).
-
- -------- Force end of options
-
- ----uuuuPPPPaaaacccckkkknnnnaaaammmmeeee
- Force apparently unused subs from package Packname to be
- compiled. This allows programs to use eval "_f_o_o()" even
- when sub foo is never seen to be used at compile time.
- The down side is that any subs which really are never
- used also have code generated. This option is necessary,
- for example, if you have a signal handler foo which you
- initialise with $SIG{BAR} = "foo". A better fix,
- though, is just to change it to $SIG{BAR} = \&foo. You
- can have multiple ----uuuu options. The compiler tries to
- figure out which packages may possibly have subs in
- which need compiling but the current version doesn't do
- it very well. In particular, it is confused by nested
- packages (i.e. of the form A::B) where package A does
- not contain any subs.
-
- ----DDDD Debug options (concatenated or separate flags like perl
- -D).
-
-
-
-
-
- Page 1 (printed 10/23/98)
-
-
-
-
-
-
- BBBB::::::::CCCC((((3333)))) 22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) BBBB::::::::CCCC((((3333))))
-
-
-
- ----DDDDoooo OPs, prints each OP as it's processed
-
- ----DDDDcccc COPs, prints COPs as processed (incl. file & line num)
-
- ----DDDDAAAA prints AV information on saving
-
- ----DDDDCCCC prints CV information on saving
-
- ----DDDDMMMM prints MAGIC information on saving
-
- ----ffff Force optimisations on or off one at a time.
-
- ----ffffccccoooogggg
- Copy-on-grow: PVs declared and initialised statically.
-
- ----ffffnnnnoooo----ccccoooogggg
- No copy-on-grow.
-
- ----OOOOnnnn Optimisation level (n = 0, 1, 2, ...). ----OOOO means ----OOOO1111.
- Currently, ----OOOO1111 and higher set ----ffffccccoooogggg.
-
- EEEEXXXXAAAAMMMMPPPPLLLLEEEESSSS
- perl -MO=C,-ofoo.c foo.pl
- perl cc_harness -o foo foo.c
-
- Note that cc_harness lives in the B subdirectory of your
- perl library directory. The utility called perlcc may also
- be used to help make use of this compiler.
-
- perl -MO=C,-v,-DcA bar.pl > /dev/null
-
-
- BBBBUUUUGGGGSSSS
- Plenty. Current status: experimental.
-
- AAAAUUUUTTTTHHHHOOOORRRR
- Malcolm Beattie, mbeattie@sable.ox.ac.uk
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Page 2 (printed 10/23/98)
-
-
-
-
-
-
- BBBB::::::::CCCC((((3333)))) 22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) BBBB::::::::CCCC((((3333))))
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Page 3 (printed 10/23/98)
-
-
-
-
-
-
-